package generator;

import java.util.*;

import uslugi.Kredyt;
import uslugi.KredytKlienta;
import util.MathUtil;
import util.TypKredytuKlientaEnum;

import klient.Klient;

public class GeneratorKredytowKlientow {

	private List<Klient> klienci;
	
	private List<Kredyt> kredyty;
	
	
	public GeneratorKredytowKlientow(List<Klient> klienci, List<Kredyt> kredyty){
		this.klienci = klienci;
		this.kredyty = kredyty;
	}
	
	
	public List<KredytKlienta> przypiszKredyty(){
		
		int id = 1;
		
		List<KredytKlienta> kredytyKlientow = new LinkedList<KredytKlienta>();
		
		
		
		
		for(int i = 0; i < klienci.size(); i++){
		
			double procent = MathUtil.nextDouble();
			
			
			if(procent <= 0.1){
				
				
				Klient klient = klienci.get(i);
				
				Kredyt kredyt = kredyty.get(MathUtil.losujInta(0, kredyty.size() - 1));
				
				int kwota = losujKwoteKredytu(klient.getOszczednosciMsc());
				
				Date dataZawarcia = MathUtil.losujDate(klient.getDataUrodzenia());
				
				KredytKlienta kk = new KredytKlienta(id, klient, kredyt, kwota, dataZawarcia, TypKredytuKlientaEnum.Z);
				id++;
				
				kredytyKlientow.add(kk);
			}
			
		}
		
		return kredytyKlientow;
		
	}
	
	private int losujKwoteKredytu(int oszcz){
		// kwota kredytu od 2 do 10 * oszcz
		return oszcz * MathUtil.losujInta(2, 5);
	}
	
	
	public static void main(String[] args) {

		List<Klient> klienci = new ArrayList<Klient>();
		for (int i = 0; i < 100000; i++) {
			klienci.add(GeneratorKlientow.generujKlienta());

		}

		GeneratorKredytowKlientow g = new GeneratorKredytowKlientow(klienci,
				new GeneratorKredytow().generujKredyty());

		List<KredytKlienta> test =	g.przypiszKredyty();
		
		for(KredytKlienta lk: test) lk.dajInfo();
		
	}

	
	
	
}
